# Python Sets Go to the[[Python Week 2 Main Page]] or the [[Python - Main Page]] Also see the [[Programming Main Page]] or the [[Main AI Page]] For code examples see the [[Week2 Sets Lab]] Python sets are a collection variable like lists and tuples and are capable of ingesting different data types. Unlike lists and tuples, sets are: - unordered, and - contain only unique elements ## Creating a set You create a set much like a list only instead of square brackets you use curly brackets. `set1 = { "There", "can", "be", "only", "one"}` It is possible to create a set with non-unique variables, but once it is initialised, those non-unique elements will vanish, with only one of those elements remaining. E.g. ```python marshall = { "Slim Shady", "The Real Shady", "All You Other Slim Shadies", "Slim Shady", "Just Imatations", "Marshall Mathers" } >>> {"Slim Shady", "The Real Shady", "All You Other Slim Shadies", "Just Imatations", "Marshall Mathers"} ``` The second `"Slim Shady"` did not stand up, and was removed from the set. ![A graphical representation of non-unique elements being removed](https://i.imgur.com/8hTnsbn.png) ### Typecasting a list to a set to remove duplicates. Say the previous set `Marshall` had been a list. We could use the `set()` function to remove dupiicates and typecast it as a set instead. ```Python marshall = ["Slim Shady", "The Real Shady", "All You Other Slim Shadies", "Slim Shady", "Just Imatations", "Marshall Mathers"] set(marshall) >>> {"Slim Shady", "The Real Shady", "All You Other Slim Shadies", "Just Imatations", "Marshall Mathers"} ``` ## Set functions Add an element to a set using the `add()` method. Note that adding an element that already exists will not work. `marshall.add("stan")` You can remove elements using the `remove()` method. `marshall.remove("stan")` You can verify if an element is in the set using the `in` command. ```python if "Slim Shady" in marshall: print("Please stand up.") ``` ### Mathematical Set operations #### Finding the intersection of two sets When you have two sets, you can find the intersection, that is, the common elements to both sets, using the ampersand `&` operator. `double_agent_set = special_circumstances_set & contact_set` Likewise, you can use the `intersection()` method. `double_agent_set = special_circumstances_set.intersection(contact_set)` #### Constructing the union of two sets To construct the union of two sets, use the `union()` method. `high_level_involved = contact_set.union(special_circumstances_set)` #### Check if a Set is a Subset of another Set Simply use the `issubset()` method of the smaller set and pass in the larger set. `32bool = m32_set.issubset(special_circumstances_set)` #### Check if a Set is a Superset of another Set Simply use the `issuperset()` method of the larger set and pass in the smaller set. `SCbool = special_circumstances_set.issuperset(m32_set)` #### Find the difference between one set and another To find how one set is different from another, call its `difference()` method on the second set. `difference = original_set.difference(other_set)`